home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
JCSM Shareware Collection 1993 November
/
JCSM Shareware Collection - 1993-11.iso
/
cl720
/
tpfast4j.lzh
/
TPFAST.GER
< prev
next >
Wrap
Text File
|
1992-09-11
|
75KB
|
2,049 lines
TPFAST 4.0
-----------
'FAST Turbo Pascal library'
CopyRight (c) 1989,1990,1991 Steven Lutrov
INHALT
1. Einleitung. . . . . . . . . . . . . . . . . . . . . .
1.1 Copyright . . . . . . . . . . . . . . . .
1.2 Technische Unterstützung. . . . . . . . .
1.3 Vertrieb. . . . . . . . . . . . . . . . .
1.3.1 P.D.N . . . . . . . . . . . . . . .
1.4 Registrierung . . . . . . . . . . . . . .
2. Funktionsbeschreibungen. . . . . . . . . . . . . . .
2.1 Dateiübersicht. . . . . . . . . . . . . .
3. Kurzübersicht . . . . . . . . . . . . . . . . . .
3.1 Bit-manipulation . . . . . . . . . . . .
3.2 Dateien . . . . . . . . . . . . . . . . .
3.3 Tastatur. . . . . . . . . . . . . . . . .
3.4 Bildschirm. . . . . . . . . . . . . . . .
3.5 Text-Graphik Modus. . . . . . . . . . . .
3.6 Strings . . . . . . . . . . . . . . . . .
4. Detaillierte Dokumentation und Referenz . . . . .
4.1 Bit-manipulation. . . . . . . . . . . . .
4.2 Dateien . . . . . . . . . . . . . . . . .
4.3 Tastatur. . . . . . . . . . . . . . . . .
4.4 Bildschirm. . . . . . . . . . . . . . . .
4.5 Text Graphik Modus. . . . . . . . . . . .
4.6 Strings . . . . . . . . . . . . . . . . .
1. Einleitung:
----------------------
Jeder der ernsthaft in Pascal programmiert kommt früher oder
später an den Punkt wo er sagt:"Das muß schneller gehen!"
Die beste Methode um schneller zu werden, ist in Assembler zu
programmieren. Sogar C Programmierer müssen mit Assembler
arbeiten um die Geschwindigkeit ihrer Programme zu erhöhen.
Ich habe einige Routinen geschrieben, die die
Ausführgeschwindigkeit eines jeden Programms erheblich steigern
können. Der Profiler stellte eine Verbesserung der
Geschwindigkeit um bis zu 80% fest. Ich habe daher absichtlich
Funktionen eingebaut, die von der Arbeitsweise her mit der
Standard run-time identisch sind, oder ihr zumindest sehr
ähneln.
Dieses Toolkit beinhaltet keine tollen Pull-down Menues oder
explodierende Fenster, aber das war auch nie meine Absicht. Es
beinhaltet nur low-level Funktionen und kann daher benutzt
werden um solche netten Kleinigkeiten zu programmieren...
(Dafür benutze ich es jedenfalls...)
Das Toolkit beinhaltet über 100 sehr nützliche und laufzeitoptimierte
Funktionen.
Es folgt eine Liste aller Assembler Moduldateien und eine
kurze Beschreibung ihrer Funktionen.
TPFBIT.ASM - mathematische bitmanipulation.
TPFKBD.ASM - Routinen zur Tastaturabfrage.
TPFVIDEO.ASM - Routinen zum Bildschirm.
TPFSTR.ASM - Routinen zur Stringverarbeitung.
Alle diese Funktionen wurden mit Borlands Turbo Pascal 6.0
getestet, aber ich kann keinerlei Garantie auf ihre
Gebrauchsfähigkeit übernehmen. Ich garantiere nur, daß dieses
Toolkit Platz auf ihrer Festplatte benötigt. Bitte lesen Sie
den Abschnitt "Copyright " für mehr Informationen hierzu.
Dieses Toolkit ist Shareware und daher nicht im Public Domain,
nicht kostenlos und auch nicht in irgendeiner Form beschränkt.
Bitte lesen Sie Abschnitt 1.3 für genauere Informationen.
1.1 CopyRight
------------------------
Weder Steven Lutrov noch die Vertreiber dieser Software sind
für irgendwelche Schäden (uneingeschränkt eingeschlossen sind
Schäden aus entgangenem Gewinn, Betriebsunterbrechung, Verlust
von geschäftlichen Informationen oder von Daten oder anderem
finanziellen Verlust) ersatzpflichtig, die aufgrund der
Benutzung dieses Produktes oder der Unfähigkeit dieses Produkt
zu verwenden entstehen, selbst wenn Steven Lutrov von der
Möglichkeit eines solchen Schadens unterrichtet worden ist.
Ansprüche die auf unabdingbaren gesetzlichen Vorschriften
beruhen bleiben unberührt.
1.2 Technische Unterstützung
------------------------------------------------
Sie können am besten technische Unterstützung erhalten wenn
sie ein Modem besitzen und sich etwas in der Mailbox-Szene
auskennen. Sie können das Software Parlour BBS anrufen wo eine
Konferenz für dieses Programm eingerichtet wird. Sie können
dort eine Nachricht (in Englisch) hinterlassen, so daß Ihnen
von mir oder anderen geholfen werden kann usw.
Sie können mir auch an die angegebene Adrresse schreiben
Ich garantiere daß Sie die neueste Version dieses Toolkits auf
dem Software Parlour BBS finden können.
Mailbox-nummer: +61-3-301-1877
300-9600 Baud.
Adresse der Box: 3:635/534@fido.org
58:4100/34@intlnet
Oder schreiben Sie (in englischer Sprache) an:
Steven Lutrov.
PO BOX 466
Essendon,
VIC 3040
Australia
1.3 Verteilung
---------------------
Sie haben die ausdrückliche Erlaubnis des Autors die Dateien
des Toolkits zu kopieren und weiter zu geben. Sie dürfen das
komplette Programm wann, wo und wie Sie möchten ausprobieren.
Nachdem Sie dieses Toolkit eine angemessene Probezeit
benutzt haben sollten Sie es entweder mit dem Autor
registrieren oder es nicht weiter benutzen. Ihre finanzielle
Unterstützung ist sehr wichtig, da nur so
Sharewareprogrammierer einen finanziellen Anreiz haben neue
Softwareprodukte herzustellen. Ohne ihre Unterstützung wird
eine große Anzahl von preiswerter, erstklassiger Software
nicht mehr erhältlich sein.
Falls Sie dieses Produkt per Telekommunikationstechniken
(Telefon, BTX etc) weitergeben, müssen Sie folgendes beachten:
* Z-modem oder ein anderes Übertragungsprotokoll muß benutzt
werden.
* Alle Dateien (inklusive Dokumentation) müssen übertragen
werden. Am besten geschieht dies in archivierter Form, d.h.
alle Dateien werden in eine einzige große Datei
zusammengefasst.
1.3.1 P.D.N.
-------------------
Das P.D.N (Programmers Distribution Network) hat das Ziel
Programmierer auf der ganzen Welt zu unterstützen . Viele
bekannte Programmierer sind Mitglieder. Mit Hilfe des P.D.N
werden Quelltext, Utilities, Libraries, Shareware, Public
Domain (Allgemeingut) und Freeware vertrieben.
Dieses Toolkit wird offiziell im P.D.N veröffentlicht und
erfüllt alle Voraussetzungen dazu.
Genauere Informationen können Sie von
PDN International Coordinator - Erik Vanriper
1:260/230@fido.org
erhalten.
1.4 Registrierung
------------------------------
Warum überhaupt bezahlen?
1. Sie erhalten den kompletten Assembler und Pascal Quelltext
und dürfen diesen Ihren Bedürfnissen anpassen.
2. Sie werden automatisch Mitglied des Software Parlour BBS.
(Der Mailbox wo TPFAST und andere Programmierleckereien
herkommen)
3. Kostenlose Aufrüstungsmöglichkeiten.
6. Ihre Ideen beeinflußen nachfolgende Versionen, wobei im
Quelltext auf Ihre Anregung hingewiesen wird.
7. Sie erhalten ein Gefühl des Stolzes, dadurch daß sie
wirklich an der Sharewarerevolution teilgenommen haben.
8. Sie helfen mit Software Preise niedrig zu halten, da Sie
eine Vertriebsmethode unterstützen, die keine teuren
Werbekampagnen benötigt.
Also, bitte nehmen Sie dies ernst und genießen Sie die
Tatsache, daß Sie gute Software legal an ihre Freunde und
Kollegen weitergeben können.
Falls sie dieses Toolkit registrieren möchten, so drucken Sie
bitte die Datei 'register.txt' aus, tragen Sie die nötigen
Informationen ein und senden Sie sie zusammen mit einem Scheck
(oder einem anderen Zahlungsmittel) an den o.g. Autor.
2. Funktionsbeschreibungen
---------------------------------
Die folgenden Abschnitte vermitteln eine kurze Übersicht über
die beinhalteten Funktioen.
Bit-manipulation
---------------------------
Diese Funktionen verändern bits, wie zum Beispiel links oder
rechts verschieben in bytes oder words.
Andere mathematische Funktionen ermöglichen die Konvertierung
von bytes und words in hex-strings.
Dateien
---------------
Diese Funktionen unterstützen das Arbeiten mit Dateien, wie
z.B. erstellen, öffnen, lesen, schreiben, und löschen von
Dateien. Jede erstellte Datei kann alle verfügbaren Attribute,
inklusive hidden, system, read-only, und sub-directory
Attribute besitzen.
Alle Dateifunktionen sind mit einem eindeutigen (integer)
Handle inidziert. Dieser Handle wird von DOS verwaltet. Sie
können Dateien zum lesen, schreiben oder lesen und schreiben
öffnen und Sie können die logische Lese/Schreibposition in
einer Datei verändern.
Weitere Funktionen erlauben Ihnen in einen bestimmten Sektor
zu schreiben und verify ein, bzw. aus zu schalten.
Tastatur
--------------
Diese Funktionen stellen praktisch alle low-level
Tastaturfunktionen zur Verfügung, die Sie jemals brauchen
werden.
Sie können feststellen ob die ALT,STRG,EINFG gedrückt werden,
ob die LINKE SHIFT -Taste, die RECHTE SHIFT-Taste oder BEIDE
SHIFT-Tasten gedrückt werden. Sie können den Stand von
CAPSLOCK (Großschrift), SCROLLOCK, NUMLOCK etc. abfragen und
diese Tasten ein- bzw. ausschalten.
Sie können aus jeder Taste eine besondere gedrückt=ein - nicht
gedrückt=aus-Taste machen, außerdem den scan-code jeder Taste
abfragen, den Tastaturpuffer löschen usw.
Video
----------
Diese Funktionen umfassen wahrscheinlich alle grundlegenden
Funktionen zur Bildschirmsteuerung, die sie jemals brauchen
werden. Alle Funktionen schreiben direkt ins Video RAM um
optimale Geschwindigkeiten zu erreichen und unterstützen sogar
die alten CGA-Monitore mit Schnee-problemen.
In der unit Datei TPFAST.PAS befindet sich eine globale
Variable, die auf TRUE gesetzt werden muß, wenn sie einen
dieser alten Bildschirme haben, sonst sollte sie auf FALSE gesetzt
bleiben.
Außerdem werden mehrere Bildschirmseiten, scrolling, Cursor-
bewegungen, Bildschirmspeicherung, speichern eines
Bildschirmausschnitts, verändern der Textattribute von Teilen
des Bildschirms oder auch des gesamten Bildschirms
unterstützt.
Strings können formatiert, im Blocksatz ausgegeben, zentriert
und gekürzt werden bevor sie auf dem Bildschirm angezeigt
werden. Strings können auch vertikal dargestellt werden.
Strings könenn in jede Bildschirmseite mit verschiedenen
Attributen an jede Position in invertierten oder intensiven
Farben geschrieben werden.
Sie können die Attribute eines jeden Buchstabens oder strings auf
dem Bildschirm anzeigen oder verändern. Das blink-bit kann
ein/ausgeschaltet werden. Dadurch erhalten Sie die Möglichkeit
zum Beispiel einen gelben Hintergrund und einen schwarzen
Vodergrund darzustellen (was man nicht sehr häufig sieht).
Text-Grafiken
--------------------
Diese Funktionen umfassen grundlegende Textbildschirmfunktionen,
wie z.B. speichern, kopieren und wiederherstellen von Bildschirm-
inhalten mit Hilfe eines Puffers, Kästen zeichnen oder einen ganzen
Bildschirm mit einem Zeichen füllen.
Man kann einen Teil, oder den gesamten Bildschirm in jede
Richtung bewegen und den Inhalt eines gesamten, oder eines
Teilbildschirmes vertikal oder horizontal verschieben.
Strings
------------
Diese Funktionen führen sehr schnelle string-manipulationen
aus,einige sind in der Funktionsweise mit der run-time
(Standardfunkion) identisch, unterscheiden sich aber sehr
in der Ausführungsgeschwindigkeit.
Die Funktionen umfassen: Zeichen ändern oder löschen, Strings
vergleichen, einen Teilstring heraussuchen, Groß - oder
Kleinschreibung ändern, einen String bis auf eine bestimmte
Länge mit Leerzeichen auffüllen (padding), suchen und ersetzen
von Strings, Strings erzeugen und Wörter in einem String zählen.
Dateiübersicht
--------------------------
Die folgenden Dateien sollten sich im Software-Paket befinden:
REGISTER.TXT - Produkt Registrier-Formular
TPFAST.TXT - Dokumentation
READ.ME - Besondere Informationen zur aktuellen Version
TPFAST.PAS - Tpfast unit Datei
TPFBIT.ASM - mathematische Funktionen, Assembler Quelltext
TPFFILE.ASM - Datei-funktioen, Assembler Quelltext
TPFKBD.ASM - Tastatur-Funktionen, Assembler Quelltext
TPFSCRN.ASM - Bildschirm-Funktionen, Assembler Queltext
TPFSTR.ASM - String-Funktionen, Assembler Quelltext
TPFVIDEO.ASM - Text-Grafik-Funktionen, Assembler Quelltext
TPFBIT.OBJ - Mathematische Funktionen, Assembler Objekt Datei
TPFFILE.OBJ - Datei-Funktionen, Assembler Objekt Datei
TPFKBD.OBJ - Tastatur-Funktionen, Assembler Objekt-Datei
TPFSCRN.OBJ - Bildschirm-Funktionen, Assembler Objekt-Datei
TPFSTR.OBJ - String-Funktionen, Assembler Objekt-Datei
TPFVIDEO.OBJ - Text-Grafik Funktionen, Assember Obejkt Datei
T_BIT.PAS - Beispielprogramm zu Bit-Funktionen
T_FILE.PAS - Beispielprogramm zu Datei-Funktionen
T_KBD.PAS - Beispielprogramm zu Tastatur-Funktionen
T_SCRN.PAS - Beispielprogramm zu Bildschirm-Funktionen
T_STR.PAS - Beispielprogramm zu String-Funktionen
3. Kurzübersicht
----------------------
3.1 Bit-Manipulation
-----------------------------
bytetohex - konvertiert ein Byte in hexadezimal
rotatebyteleft - verschiebt die Bits in einem Byte nach links
rotatebyteright - verschiebt die Bits in einem Byte nach rechts
rotatewordleft - verschiebt die Bits in einem Word nach links
rotatewordright - verschiebt die Bits in einem Word nach rechts
wordtohex - Konvertiert ein Word in Hexadezimal
3.2 Dateien
-----------------
fclose - schließt eine Datei
fcreate - Erzeugt eine Datei mit festgelegten
Attributen
ferase - Löscht angegebene Datei
Fopen - öffnet eine Datei mit bestimmten
Zugriffsrechten
fread - Liest den Inhalt einer Datei in einen Puffer
fseek - ändert die logische lese/schreib-Position in
einer Datei
fwrite - Schreibt in eine Datei
getverify - Zeigt an ob verify ein - oder ausgeschaltet ist
readsector - Liest ab einem bestimmten Sektor auf Floppy/Platte
setverify - Schaltet verify ein/aus
writesector - Schreibt in einen bestimmten Sektor auf
Floppy/Platte
3.3 Tastatur
-----------------
altkeydown - Zeigt an ob die <alt> Taste gedrückt wird
capslockdown - Zeigt an ob Großschrift gedrückt wird
capslockon - Zeigt an ob Großschrift eingeschaltet ist
clearcapslock - schaltet Großschrift aus
clearins - schaltet Einfg aus
clearnumlock - schaltet numlock aus
clearscrolllock - schaltet Rollen aus
crtlkeydown - zeigt an ob Strg gedrückt wird.
ekeypressed - abfragen ob eine Enhanced (AT) Tastatur Taste
gedrückt wurde
freshchar - Löscht den Tastaturpuffer und gibt den nächsten
Tastendruck aus.
getekey - Enhanced (AT) Tastatur abfragen
getkey - Tastatur abfragen
inskeydown - abfragen ob Einfg gedrückt wird
inskeyon - abfragen ob Einfg zur Zeit eingeschaltet ist.
keypause - macht aus beliebiger Taste eine "gedrückt=an -
nicht gedrückt=aus" Taste
lastkey - gibt den letzten Tastaturcode aus dem Puffer aus
leftshiftdown - zeigt an ob die linke shift Taste gedrück wird.
nextkey - gibt den nächsten Tastaturcode aus, ohne ihn im
Puffer zu löschen
numlockdown - zeigt an ob Num gedrückt wurde
numlockon - zeigt an ob Num zur Zeit eingeschaltet ist
rightshiftdown - zeigt an ob die rechte Shift Taste zur Zeit
gedrückt wird.
scrolllockdown - zeigt an ob Rollen zur Zeit gedrückt wird.
scrolllockon - zeigt an ob Rollen zur Zeit eingeschaltet ist
setcapslock - schaltet Großschrift ein
setins - schaltet Einfg ein
setnumlock - schaltet Num ein
setscrolllock - schaltet Rollen ein
3.4 Bildschirm
------------------
blinkoff - schaltet das Textattribut blinken aus
blinkon - schaltet das Textattribut blinken ein
clearpage - löscht eine vorher gespeicherte Bildschirmseite
aus dem Speicher
colourx - Ändert die Attribute einer Textspalte
cursordown - Bewegt den Cursor eine beliebige Zahl von Zeilen
nach unten
cursorleft - Bewegt den Cursor eine beliebige Zahl von Spalten
nach links
cursoroff - Macht den Cursor unsichtbar
cursoron - Macht den Cursor sichtbar
cursorright - Bewegt den Cursor eine beliebige Zahl von Spalten
nach rechts
cursorup - Bewegt den Cursor eine beliebige Zahl von Zeilen
nach oben
dsp - schreibt einen String direkt in den Bildschirmspeicher
dspat - schreibt einen String direkt in den Bildschirmspeicher
an die angegebenen Koordinaten mit dem angegebenen
Attribut.
dspcolour - schreibt einen String direkt in den Bildschirmspeicher
mit dem angegebenen Attribut
dspend - schreibt einen String direkt in den Bildschirmspeicher
und löscht die restlichen Zeichen
dspjust - schreibt einen String direkt in den Bildschirmspeicher
und richtet ihn an einer bestimmten Zeilen - und
Spaltenposition aus.
dspln - schreibt einen String direkt in den Bildschirmspeicher
dsplncolour - schreibt einen String direkt in den Bildschirmspeicher
mit dem angegebenen Attribut
dsppart - schreibt einen Teilstring direkt in den Bildschirm-
speicher an der angegebenen Stelle mit den angegebenen
Attributen
dspvert - schreibt einen String vertikal direkt in den Bild-
schirmspeicher
formatleft - schreibt einen String linksbündig direkt in den Bild-
schirmspeicher
formatright - schreibt einen String rechtsbündig direkt in den Bild-
schirmspeicher
getcolour - zeigt die Attribute einer beliebigen Bildschirmposition
an
getpage - Holt die aktuelle Seite
intenseoff - schaltet das intensiv-Attribut aus
intenseon - schaltet das intensiv-Attribut ein
normal - setzt das normal-Attribut
reverse - dreht die Attribute um
rowcolour - ändert die Attribute einer beliebigen Textzeile
screencolour - ändert die Attribute eines rechteckigen Bildschirm-
ausschnitts
setcolour - setzt ein Attribut an einer beliebigen Stelle
setpage - macht aus einer bestimmten Bildschirmseite die
aktuelle und aktive Seite
swappage - schreibt den gesamten Speicherbereich einer Bild-
schirmseite zu einem Puffer und gibt diesen Speicher-
bereich frei.
3.5 Textgraphik-Modus
--------------------------
copyclear - Kopiert den Inhalt eines Bildschirmbereichs
drawbox - zeichnet eine einfache Box auf den Bildschirm
filscreen - füllt einen Teil des Bildschirms mit einem be-
liebigen Zeichen mit beliebigen Attribut
restorescreen - Stellt einen zuvor gespeicherten Bildschirminhalt
wieder her
savescreen - speichert einen Bildschirmausschnitt
screendown - Bewegt einen Bildschirmausschnitt 1 Zeile nach unten
screenleft - Bewegt einen Bildschirmausschnitt 2 Spalten nach links
screenright - Bewegt einen Bildschirmausschnitt 2 Spalten nach rechts
screenup - Bewegt einen Bildschirmausschnitt 1 Zeile nach oben
scrollx - verschiebt einen bestimmten Bildschirmausschnitt nach
links oder rechts
scrolly - verschiebt einen bestimmten Bildschirmausschnitt nach
oben oder unten
3.6 Strings
-----------------
changechar - Ändert jedes Vorkommnis eines bestimmten Buchstabens
in einem String
compare - Vergeicht 2 strings, ohne auf Groß/Kleinschrift zu
achten
deletechar - Löscht jedes Vorkommnis eines bestimmten Buchstabens
in einem String
deleteleft - Löscht alle Buchstaben vom Anfang eines Strings
bis ein bestimmter Buchstabe erreicht ist
deleteright - Löscht alle Buchstaben vom Ende des Strings aus bis
ein bestimmter Buchstabe erreicht ist
leftend - Gibt das linke Ende eines Strings bis zu einem
bestimmten Buchstaben aus
lowercase - Ändert einen String in Kleinbuchstaben
overwrite - Überschreibt einen Teil eines Strings mit einem
Substring
padcentre - Füllt (pad) einen String auf eine bestimte Länge auf
durch einfügen von Leerzeichen an beliebigen Stellen
padends - Verlängert einen String durch auffüllen mit Leerzeichen
an beiden Enden
padleft - Füllt den Anfang eines Strings mit Leerzeichen und ver-
längert ihn so auf eine bestimmte Länge
padright - Füllt das Ende eines Strings mit Leerzeichen und ver-
längert ihn so auf eine bestimmte Länge
replace - Löscht eine bestimmte Anzahl von Buchstaben und ersetzt
sie durch einen Substring
rightend - Gibt das rechte Ende eines Strings bis zu einem
bestimmten Buchstaben aus
seekstring - Durchsucht einen String nach einem Substring
stringend - Gibt eine bestimmte Zahl von Buchstaben vom Stringende
aus wieder
stringof - Erzeugt einen neuen String aus Wiederholungen eines
Substrings
uppercase - Ändert einen String in Großbuchstaben
wordcount - Zählt die Anzahl Wörter in einem String
4. Detaillierte Dokumentation und Referenz
-------------------------------------------------
Der folgende Text beschreibt im Detail alle Funktionen dieses
Toolkits. Wenn ich Funktionen sage meine ich auch Prozeduren
da sie für mich im Grunde das selbe sind. Das Format ist sehr
einfach und klar und benötigt daher keinerlei Erklärung
Alle Funktionen sind in alphabetischer Reihenfolge aufgelistet
und sollten daher recht einfach auffindbar sein.
4.1 Bit-manipulation
------------------------------
------------------------------------------------------
bytetohex
BESCHREIBUNG - konvertiert ein Byte in hexadezimal
SCHREIBWEISE - function bytetohex(num:byte):stype;
PARAMETER - num - das zu konvertierende byte
ERGEBNIS - ein Hexadezimalstring der das Byte darstellt
-------------------------------------------------------
rotatebyteleft
BESCHREIBUNG - verschiebt die Bits in einem Byte nach links
SCHREIBWEISE - function rotatebyteleft(num,nbits :byte):byte;
PARAMETER - num - das zu bearbeitende Byte
nbits - die Anzahl der Stellen um die verschoben
werden soll
ERGEBNIS - das modifizierte Byte
------------------------------------------------------
rotatebyteright
BESCHREIBUNG - verschiebt die Bits in einem Byte nach rechts
SCHREIBWEISE - function rotatebyteright(num,nbits :byte):byte;
PARAMETER - num - das zu bearbeitende Byte
nbits - die Anzahl der Stellen um die verschoben
werden soll
ERGEBNIS - das modifizierte Byte
------------------------------------------------------
rotatewordleft
BESCHREIBUNG - verschiebt die Bits in einem Word nach links
SCHREIBWEISE - function rotatewordleft(num :word;nbits :byte):word;
PARAMETER - num - das zu bearbeitende Word
nbits - die Anzahl der Stellen um die verschoben
werden soll
ERGEBNIS - das modifizierte Word
------------------------------------------------------
rotatewordright
BESCHREIBUNG - verschiebt die Bits in einem Word nach rechts
SCHREIBWEISE - function rotatewordright(num :word;nbits :byte):word;
PARAMETER - num - das zu bearbeitende Word
nbits - die Anzahl der Stellen um die verschoben
werden soll
ERGEBNIS - das modifizierte Word
------------------------------------------------------
wordtohex
BESCHREIBUNG - konvertiert eine word-Variable in Hexadezimal
SCHREIBWEISE - function bytetohex(num : word) : stype;
PARAMETER - num - das zu konvertierende Word
ERGEBNIS - ein Hexadezimal String der das Word darstellt
4.2 Dateien
---------------
------------------------------------------------------
fclose
BESCHREIBUNG - schließt eine Datei
SCHREIBWEISE - function fclose(handle : integer) : boolean;
PARAMETER - handle - der DOS Datei-handle
ERGEBNIS - true - Datei wurde ohne Fehler geschlossen
false - Datei wurde nicht richtig geschlossen
------------------------------------------------------
fcreate
BESCHREIBUNG - Erzeugt eine Datei mit bestimmten Attributen. Die
Attribute sind die selben wie die der standard
run-time library, aber anyfile ist nicht erlaubt.
Benutzen Sie die logischen operatoren für
Attributkombinationen
z.B.: (0 or 2 or 5) usw.
SCHREIBWEISE - function fcreate(fname : string; attribute : integer)
:integer;
PARAMETER - fname - Der Name der zu erzeugenden Datei.
Attribut - Das Attribut der zu erzeugenden Datei.
0 = read only
1 = hidden
2 = system file
3 = volume label entry
4 = subdirectory
5 = archive file
ERGEBNIS - >=0 - Feherfrei (gibt DOS-Handle zurück)
-3 - Pfad nicht gefunden
-4 - zu viele offene Dateien
-5 - Zugriff verweigert
------------------------------------------------------
ferase
BESCHREIBUNG - Löscht angegebene Datei
SCHREIBWEISE - function ferase(name : string) : integer;
PARAMETER - name - der Name der zu löschenden Datei
ERGEBNIS - 0 - Fehlerfrei
-2 - Datei nicht gefunden
-5 - Zugriff verweigert
------------------------------------------------------
fopen
BESCHREIBUNG - Öffnet Datei mit angegebenen Zugriffsrechten
SCHREIBWEISE - function fopen(name : string; access : integer)
:integer;
PARAMETER - name - der Name der zu öffnenden Datei
access - das Zugriffsrecht auf die Datei
0 - nur Lesezugriff
1 - nur Schreibzugriff
2 - Lese - und Schreibzugriff
ERGEBNIS - >=0 - Fehlerfrei (gibt DOS-Handle zurück)
-2 - Datei nicht gefunden
-4 - zu viele Dateien geöffnet
-5 - Zugriff verweigert
-12 - Ungültiger Zugriff
------------------------------------------------------
fread
BESCHREIBUNG - Liest eine Datei in einen Puffer
SCHREIBWEISE - function fread(handle : integer; amount :word;
var buff) : integer;
PARAMETER - handle - der DOS-Handle der Datei
amount - die Anzahl der zu lesenden Bytes
Größe des record <= $7FFF bytes
buff - Pointer zur Addresse vom Datenpuffer
ERGEBNIS - >=0 - Fehlerfrei (gibt die Zahl der gelesenen Bytes
zurück)
-5 - Zugriff veweigert
-6 - ungültiger Handle
------------------------------------------------------
fseek
BESCHREIBUNG - Verändert die logische Lese- Schreibposition in
einer Datei
SCHREIBWEISE - function fseek (handle : integer; mode : integer,
offset:longint; var location : longint) : boolean;
PARAMETER - handle - der DOS-Handle der Datei
mode - Art der Zeigerbewegung, d.h.
0 - von Dateianfang aus bewegen
1 - von gegenwärtiger Position aus weiter
bewegen
2 - über Ende der Datei hinaus bewegen
offset - offset in der Datei relativ zum Bewegungsmode (s.o.)
location - neue Adresse des Zeigers
ERGEBNIS - true - Fehlerfrei
false - Irgendwas hat nicht geklappt.
------------------------------------------------------
fwrite
BESCHREIBUNG - Schreibt in eine Datei
SCHREIBWEISE - function fwrite(handle : integer; nwrite : word;
var buff) : integer;
PARAMETER - handle - der DOS-Handle der Datei
nwrite - Zahl der zu schreibenden Bytes
maximale Größe des Records <= $7FFF Bytes
buff - pointer zur Addresse des Datenpuffers
ERGEBNIS - >= 0 - Fehlefrei (gibt die Zahl der geschriebenen
Bytes zurück)
- 5 - Zugriff verweigert
------------------------------------------------------
getverify
BESCHREIBUNG - Gibt den Status des DOS verify flags für Schreib-
zugriffe zurück.
SCHREIBWEISE - function getverify:boolean
PARAMETER - keine
ERGEBNIS - true - verify ist eingeschaltet
false - verify ist ausgeschaltet
------------------------------------------------------
readsector
BESCHREIBUNG - Liest 512 Bytes eines bestimmten Sektors in einen
Puffer
SCHREIBWEISE - procedure readsector(segmemt,offset,drive,sector,
number : word);
PARAMETER - segment - das Segment des array Puffer Objekts
offset - das Offset des Segments
drive - das angegebene Laufwerk:
1=a,2=b,3=c etc.
sector - die logische Sektornummer
number - die Anzahl der zu lesenden Sektoren
ERGEBNIS - 0 - Fehlerfrei
1 - Laufwerk hat falsches Format
3 - Ungültige Sektorennummer
4 - Hardwarefehler
------------------------------------------------------
setverify
BESCHREIBUNG - Ändert das DOS verify flag für Schreibzugriffe
SCHREIBWEISE - procedure setverify(setting : boolean);
PARAMETER - setting - true = verify wird eingeschaltet
- false = verify wird ausgeschaltet
------------------------------------------------------
writesector
BESCHREIBUNG - schreibt 512 Bytes aus einem Puffer in einen
bestimmten Sektor auf dem Laufwerk
SCHREIBWEISE - PROCEDURE WRITESECTOR(segment,offset,drive,sector,
number:word);
PARAMETER - segment - das Segment des array Puffer Objekts
offset - das Offset des Segments
drive - das angegebene Laufwerk:
1=a,2=b,3=c etc.
sector - die logische Sektornummer
number - die Anzahl der zu lesenden Sektoren
ERGEBNIS - 0 - Fehlerfrei
1 - Laufwerk hat falsches Format
2 - Schreibschutzfehler
3 - Ungültige Sektorennummer
4 - Hardwarefehler
-------------------------------------------------------
4.3 Tastatur
-------------------
------------------------------------------------------
altkeydown
BESCHREIBUNG - Zeigt an ob die <Alt> Taste gedrückt wird
SCHREIBWEISE - function altkeydown : boolean;
PARAMETER - keine
ERGEBNIS - true - wenn <Alt> gedrückt wird
false - wenn nicht.
------------------------------------------------------
capslockdown
BESCHREIBUNG - Zeigt an ob <Capslock> gedrückt wird
SCHREIBWEISE - function capslockdown : boolean;
PARAMETER - keine
ERGEBNIS - true - wenn <Capslock> gedrückt wird
false - wenn nicht
------------------------------------------------------
capslockon
BESCHREIBUNG - Zeigt an ob Capslock eingeschaltet ist.
SCHREIBWEISE - function capslockon : boolean;
PARAMETER - keine
ERGEBNIS - true - <capslock> ist eingeschaltet
false - <capslock> ist ausgeschaltet
------------------------------------------------------
clearbuffer
BESCHREIBUNG - Löscht den Tastaturpuffer
SCHREIBWEISE - procedure clearbuffer;
PARAMETER - keine
------------------------------------------------------
clearcapslock
BESCHREIBUNG - Löscht die <capslock> Taste
SCHREIBWEISE - procedure clearcapslock;
PARAMETER - keine
------------------------------------------------------
clerins
BESCHREIBUNG - Löscht die <Einfg> Taste
SCHREIBWEISE - procedure clearins;
PARAMETER - keine
------------------------------------------------------
clearnumlock
BESCHREIBUNG - Löscht die <num> Taste
SCHREIBWEISE - procedure clearnumlock;
PARAMETER - keine
------------------------------------------------------
clearscrolllock
BESCHREIBUNG - Löscht die <Rollen> Taste
SCHREIBWEISE - procedure clearscrolllock;
PARAMETER - keine
------------------------------------------------------
ctrlkeydown
BESCHREIBUNG - Zeigt an ob die <Strg> Taste gedrückt wird
SCHREIBWEISE - function ctrlkeydown : boolean;
PARAMETER - keine
ERGEBNIS - true - <Strg> wird gedrückt
false - <Strg> wird nicht gedrückt
------------------------------------------------------
ekeypressed
BESCHREIBUNG - Prüft ob eine enhanced Taste gedrückt wurde. Diese
Funktion ist der Standardfunktion keypressed ähnlich,
aber sie unterstützt zusätzlich enhanced Tasten wie
F11 oder F12.
SCHREIBWEISE - ekeypressed : boolean;
PARAMETER - keine
ERGEBNIS - true - enhanced Taste wurde gedrückt
false - enhanced Taste wurde nicht gedrückt.
------------------------------------------------------
freshchar
BESCHREIBUNG - Löscht den Tastaturpuffer und gibt das nächste Zeichen
zurück.
SCHREIBWEISE - function freshchar : boolean;
PARAMETER - keine
ERGEBNIS - Das nächste Zeichen. Wenn eine erweiterte Taste (wie
z.B. F11) gedrückt wurde wird nur chr(0)
zurückgegeben
------------------------------------------------------
getekey
BESCHREIBUNG - Holt ein Zeichen aus dem Tastaturpuffer und wartet
falls der Puffer leer ist. Diese Funktion nimmt auch
erweiterte Tasten inklusive F11 und F12 an, falls sie
von ihrem Computer unterstützt werden. Funktioniert nur
auf AT model 339, XT2, XT286 und PS Systemen.
SCHREIBWEISE - function getekey : word;
PARAMETER - keine
ERGEBNIS - Ein word daß das Zeichen und den Scancode enthält. Bitte
sehen Sie unter dem Abschnitt "const" in der TPFAST.PAS
Datei nach wenn Sie mehr über die Tastenkonstanten
erfahren möchten. Sie können auch die HI,LO Funktionen
benutzen um den Scancode zu bekommen.
Beispiel:
HI(x) - ergibt den Scancode
LO(x) - ergibt das Zeichen
------------------------------------------------------
getkey
BESCHREIBUNG - Holt ein Zeichen aus dem Tastaturpuffer und wartet
falls der Puffer leer ist. Diese Funktion nimmt keine
erweiterten Tasten an und wartet bis eine andere Taste
gedrückt wurde. Benutzen Sie diese Funktion wenn Sie
keine Erweiterte Tastatur benutzen.
SCHREIBWEISE - function getkey : word;
PARAMETER - keine
ERGEBNIS - Ein word daß das Zeichen und den Scancode enthält. Bitte
sehen Sie unter dem Abschnitt "const" in der TPFAST.PAS
Datei nach wenn Sie mehr über die Tastenkonstanten
erfahren möchten. Sie können auch die HI,LO Funktionen
benutzen um den Scancode zu bekommen.
Beispiel:
HI(x) - ergibt den Scancode
LO(x) - ergibt das Zeichen
------------------------------------------------------
inskeydown
BESCHREIBUNG - Zeigt an ob die <Einfg> Taste gedrückt wird
SCHREIBWEISE - function inskeydown : boolean;
PARAMETER - keine
ERGEBNIS - true - wenn <Einfg> gedrückt wird
false - wenn nicht
------------------------------------------------------
inskeyon
BESCHREIBUNG - Zeigt an ob <Einfg> eingeschaltet ist.
SCHREIBWEISE - function inskeyon : boolean;
PARAMETER - keine
ERGEBNIS - true - <Einfg> ist eingeschaltet
false - <Einfg> ist ausgeschaltet
------------------------------------------------------
keypause
BESCHREIBUNG - Macht aus einer beliebigen Taste eine gedrückt=ein
nicht gedrückt=aus - Taste. Dies ist eine besondere
Funktion, die zwischen Tastendruck und Loslassen
unterscheiden kann.
SCHREIBWEISE - procedure keypause(code:char; ascii : boolean;
wait_a,wait_b : byte);
PARAMETER - code - die Taste die für keypause verwendet wird.
ascii - true - code ist 1 byte ascii code
false - code ist zweites Byte eines erweiterten
codes.
wait_a - Zeit für das Puffer Auffrischsignal bei
Tastendruck
wait_b - Zeit für das Puffer Auffrischsignal bei
Loslassen
------------------------------------------------------
lastkey
BESCHREIBUNG - liest den letzten Tastaturcode aus dem Puffer
SCHREIBWEISE - function lastkey : char;
PARAMETER - keine
ERGEBNIS - Der letzte Tastaurcode im Puffer. Wenn der Tastatur-
puffer leer ist, gibt diese Routine 255 zurück. Wenn
die letzte Taste eine extended Taste ist, wird nur
chr(0) zurückgegeben.
------------------------------------------------------
leftshiftdown
BESCHREIBUNG - zeigt an ob die linke Shift Taste gedrückt wird.
SCHREIBWEISE - function leftshiftdown : boolean;
PARAMETER - keine
ERGEBNIS - true - die linke Shift Taste wird gedrückt.
false - wird nicht gedrückt
------------------------------------------------------
nextkey
BESCHREIBUNG - Holt das nächste Zeichen aus dem Puffer ohne es im
Puffer zu löschen.
SCHREIBWEISE - function nextkey : char;
PARAMETER - keine
ERGEBNIS - 0 - normaler ASCII wird ausgegeben
1 - erweiterte Taste wird ausgegeben
2 - Puffer ist leer
------------------------------------------------------
numlockdown
BESCHREIBUNG - Zeigt an ob <Num> gedrückt wird.
SCHREIBWEISE - funcion numlockdown : boolean;
PARAMETER - keine
ERGEBNIS - true - <Num> wird gedrückt
false - <Num> wird nicht gedrückt
------------------------------------------------------
numlockon
BESCHREIBUNG - Zeigt an ob <Num> eingeschaltet ist
SCHREIBWEISE - function numlockon : boolean;
PARAMETER - keine
ERGEBNIS - true - <Num> ist eingeschaltet
false - <Num> ist ausgeschaltet
------------------------------------------------------
rightshifdown
BESCHREIBUNG - Zeigt an ob die rechte Shift Taste gedrückt wird
SCHREIBWEISE - function rightshiftdown : boolean;
PARAMETER - keine
ERGEBNIS - true - die rechte Shift Taste wird gedrückt
false - sie wird nicht gedrückt
------------------------------------------------------
scrolllockdown
BESCHREIBUNG - Zeigt an ob die <Rollen> Taste gedrückt wird
SCHREIBWEISE - function scrolllockdown : boolean;
PARAMETER - keine
ERGEBNIS - true - <Rollen> wird gedrückt
false - <Rollen wird nicht gedrückt
------------------------------------------------------
scrolllockon
BESCHREIBUNG - Zeigt an ob die <Rollen> Taste eingeschaltet ist
SCHREIBWEISE - function scrolllockon : boolean;
PARAMETER - keine
ERGEBNIS - true - <Rollen> ist eingeschaltet.
false - <Rollen> ist ausgeschaltet.
------------------------------------------------------
setcapslock
BESCHREIBUNG - Schaltet Großschrift ein
SCHREIBWEISE - procedure setcapslock;
PARAMETER - keine
------------------------------------------------------
setins
BESCHREIBUNG - Schaltet <Einfg> ein
SCHREIBWEISE - procedure setins;
PARAMETER - keine
------------------------------------------------------
setnumlock
BESCHREIBUNG - Schaltet <Num> ein
SCHREIBWEISE - procedure setnumlock;
PARAMETER - keine
------------------------------------------------------
setscrolllock
BESCHREIBUNG - Schaltet <Rollen> ein
SCHREIBWEISE - procedure setscrolllock;
PARAMETER - keine
4.4 Bildschirm
---------------------
------------------------------------------------------
blinkoff
BESCHREIBUNG - Schaltet das Textattribut blinken aus. Mit EGA und
VGA Bildschirmen erhält man so weitere
Farbkombinationen wie schwarz auf gelbem Hintergrund
SCHREIBWEISE - procedure blinkoff;
PARAMETER - keine
------------------------------------------------------
blinkon
BESCHREIBUNG - Schaltet das Textattribut blinken ein. Dies ist der
Normalzustand aller Grafikkarten
SCHREIBWEISE - procedure blinkon;
PARAMETER - keine
------------------------------------------------------
clearpage
BESCHREIBUNG - Löscht eine vorher gespeicherte Seite aus dem Speicher
Bitte sehen Sie unter getpage für weitere Informationen
nach.
SCHREIBWEISE - procedure clearpage(pagenumber,colour:byte);
PARAMETER - pagenumber - die Seitenzahl/Nummer
colour - das Farbattribut zu dem die Seite
gelöscht werden soll.
------------------------------------------------------
colourx
BESCHREIBUNG - Ändert die Farbattribute einer Spalte.
Die dargestellten Zeichen werden nicht verändert.
SCHREIBWEISE - procedure colorx(x,y,yy,colour:byte);
PARAMETER - x - Spaltenpositionskoordinate
y - Zeilenpositionskoordinate
yy - Anzahl der Spalten (Breite)
colour - das Farbattribut
------------------------------------------------------
cursordown
BESCHREIBUNG - Bewegt den Cursor die angegebene Zahl von Zeilen
nach unten.
SCHREIBWEISE - procedure cursordown(rows : integer);
PARAMETER - rows - Die Anzahl der Zeilen
------------------------------------------------------
cursorleft
BESCHREIBUNG - Bewegt den Cursor die angegebene Anzahl von Spalten
nach links
SCHREIBWEISE - procedure cursorleft(columns : integer);
PARAMETER - columns - die Anzahl der Spalten, um die der Cursor
nach links bewegt werden soll
------------------------------------------------------
cursoroff
BESCHREIBUNG - Schaltet den Cursor aus, macht ihn unsichtbar
SCHREIBWEISE - procedure cursoroff;
PARAMETER - keine
------------------------------------------------------
cursoron
BESCHREIBUNG - Schaltet den Cursor ein, macht ihn sichtbar
SCHREIBWEISE - procedure cursoron;
PARAMETER - keine
------------------------------------------------------
cursorright
BESCHREIBUNG - Bewegt den Cursor die angegebene Anzahl von Spalten
nach links.
SCHREIBWEISE - procedure cursorright(columns : integer);
PARAMETER - columns - Anzahl der Spalten
------------------------------------------------------
cursorup
BESCHREIBUNG - Bewegt den Cursor die angegebene Anzahl von Zeilen
nach oben.
SCHREIBWEISE - procedure cursorup(rows : integer);
PARAMETER - rows - Die Anzahl Zeilen
-----------------------------------------------------
dsp
BESCHREIBUNG - Schreibt einen String direkt in den Videospeicher.
der String kann zu einer beliebigen Seite geschrieben
werden und das Farbattribut des Strings entspricht der
allgemeinen Variable textattr. Es wird kein Zeilen-
vorschub/Cursor zurücksetzen geschrieben (siehe dspln)
SCHREIBWEISE - procedure dsp (s : stype);
PARAMETER - s - der zu schreibende String
------------------------------------------------------
dspat
BESCHREIBUNG - Schreibt einen String direkt in den Videospeicher in
die angegebenen Koordinaten in dem angegebenen Text-
attribut. Der String kann zu einer beliebigen Seite
geschrieben werden. Es wird kein Zeilenvorschub/Cursor
zurücksetzen geschrieben (CR/LF, siehe dspln)
SCHREIBWEISE - procedure dspat(s : stype; x,y,colour : byte);
PARAMETER - s - der zu schreibende String
x - die Spaltenposition
y - die Zeilenposition
colour - das Farbattribut des Strings
------------------------------------------------------
dspcolour
BESCHREIBUNG - Schreibt einen String in den Videospeicher mit einem
angegebenen Farbattribut. Der String kann zu jeder
beliebigen Seite geschrieben werden. Es wird kein
Zeilenvorschub/Cursor zurücksetzen geschrieben
(CR/LF, siehe dspln)
SCHREIBWEISE -procedure dspcolour(s:stype;colour:byte);
PARAMETER - s - der zu schreibende String
colour - das Farbattribut des Strings
------------------------------------------------------
dspend
BESCHREIBUNG - Schreibt einen String in den Videospeicher und löscht
die Zeichen nache dem String bis eine vorgegebene Länge
erreicht ist.
SCHREIBWEISE - procedure dspend(s:stype;x,y,length,colour : byte);
PARAMETER - s - der zu schreibende String
x - die Spaltenposition des Anfangs
y - die Zeilenposition des Anfangs
colour - das Farbattribut des Strings
length - die Anzahl der Zeichen bis zum Stringende
------------------------------------------------------
dspjust
BESCHREIBUNG - Schreibt einen String in den Videospeicher bündig
an einen angegebenen Bildschirmpunkt
SCHREIBWEISE - procedure dspjust(s : stype; x,y,colour : byte);
PARAMETER - s - der zu schreibende String
x - die Spaltenposition des Anfangs
y - die Zeilenposition des Anfangs
colour - das Farbattribut des Strings
------------------------------------------------------
dspln
BESCHREIBUNG - Schreibt einen string in den Videospeicher. Der String
kann in jede beliebige Seite geschrieben werden und
das Farbattribut des Strings ist die globale Variable
textattr. Ein Zeilenvorschub / Cursor zurücksetzen wird
an den String angehängt (CR/LF)
SCHREIBWEISE - procedure(dspln(s : stype);
PARAMETER - s - der zu schreibende String
------------------------------------------------------
dsplncolour
BESCHREIBUNG - Schreibt einen String im angegebenen Farbattribut in den
Videospeicher. Der String kann in jede beliebige Seite
geschrieben werden.Ein Zeilenvorschub / Cursor
zurücksetzen wird an den String angehängt (CR/LF)
SCHREIBWEISE - procedure dsplncolour(s : stype; colour : byte);
PARAMETER - s - der zu schreibende String
colour - das Farbattribut des Strings (0-255)
------------------------------------------------------
dsppart
BESCHREIBUNG - Schreibt einnen Teil eines Strings in den Videospeicher,
in die angegebenen Koordinaten, in einem angegebenen
Farbattribut
SCHREIBWEISE - procedure dspart(s : stype; start, numch, x,
y, colur : byte);
PARAMETER - s - der u schreibende String
start - die Anfangsposition in s
numch - die Anzahl der zu schreibenden Zeichen
x - die Spaltenposition des Anfangs
y - die Zeilenposition des Anfangs
colour - das Farbattribut des Strings
------------------------------------------------------
dspvert
BESCHREIBUNG - Schreibt einen String senkrecht in den Videospeicher
SCHREIBWEISE - procedure dspvert(s: stype; x, y, colour : byte);
PARAMETER - s - der zu schreibende String
x - die Spaltenposition des Anfangs
y - die Zeilenposition des Anfangs
colour - das Farbattribut des Strings
------------------------------------------------------
formatleft
BESCHREIBUNG - Schreibt einen String in den Videospeicher mit
Formatierung. Der String wird rechts vom Cursor
geschrieben. Falls how_many einen positiven Wert
enthält, wird der Cursor rechts vom Ausgangspunkt
versetzt. Wenn how_many negativ ist, wird der Cursor
direkt unter den Anfangspunkt gesetzt.
SCHREIBWEISE - procedure formatleft(s : stype; how_many : integer;
colour : byte);
PARAMETER - s - der zu schreibende String
how_many - Abstand zwischen Startposition und End-
position des Cursors
colour - das Farbattribut
------------------------------------------------------
formatright
BESCHREIBUNG - Schreibt einen String in den Videospeicher mit
Formatierung. Der String wird links vom Cursor
geschrieben. Falls how_many einen positiven Wert
enthält, wird der Cursor links vom Ausgangspunkt
versetzt. Wenn how_many negativ ist, wird der Cursor
direkt unter den Anfangspunkt gesetzt.
SCHREIBWEISE - procedure formatright(s : stype; how_many : integer;
colour : byte);
PARAMETER - s - der zu schreibende String
how_many - Abstand zwischen Startposition und End-
position des Cursors
colour - das Farbattribut
------------------------------------------------------
getcolour
BESCHREIBUNG - Gibt das Farbattribut einer Bildschirmposition zurück
SCHREIBWEISE - function getcolour(x,y : byte) : byte;
PARAMETER - x - Spaltenposition des Anfangs
y - Zeilenposition des Anfangs
ERGEBNIS - Das Farbattribut
------------------------------------------------------
getpage
BESCHREIBUNG - Holt die aktuelle Seite
SCHREIBWEISE - function getpage : integer;
PARAMETER - keine
ERGEBNIS - Die aktuelle aktive Seite
------------------------------------------------------
intenseoff
BESCHREIBUNG - Schaltet das Textattribut intensiv aus
SCHREIBWEISE - procedure intenseoff;
PARAMETER - keine
------------------------------------------------------
intenseon
BESCHREIBUNG - Schaltet das Textattribut intensiv ein.
SCHREIBWEISE - procedure intenseon;
PARAMETER - keine
------------------------------------------------------
normal
BESCHREIBUNG - Setzt das Textattribut auf normal
SCHREIBWEISE - procedure normal;
PARAMETER - keine
------------------------------------------------------
reverse
BESCHREIBUNG - Vertauscht die Textattribute.
SCHREIBWEISE - procedure reverse;
PARAMETER - keine
------------------------------------------------------
rowcolour
BESCHREIBUNG - Ändert das Farbattribut einer Textzeile. Der Text
wird nicht verändert
SCHREIBWEISE - procedure rowcolour(x,y,xx,colour : byte);
PARAMETER - x - obere linke Spaltenposition
y - obere linke Zeilenposition
xx - Anzahl der zu verändernden Zeilen
colour - Das Farbattribut
------------------------------------------------------
screencolour
BESCHREIBUNG - Ändert das Farbattribut eines rechteckigen Bildschirm-
ausschnitts. Der Text wird nicht verändert.
SCHREIBWEISE - procedure screencolour(x,y,xx,yy,colour : byte);
PARAMETER - x - obere linke Spaltenposition
y - obere linke Zeilenposition
xx - Anzahl der zu verändernden Spalten
yy - Anzahl der zu verändernden Zeilen
colour - Das Farbattribut
------------------------------------------------------
setcolour
BESCHREIBUNG - Setzt das Farbattribut eines Zeichens an einer
bestimmten Bildschirmposition. Der Text wird nicht
verändert.
SCHREIBWEISE - procedure setcolour(x,y, colour : byte);
PARAMETER - x - obere linke Spaltenposition
y - obere linke Zeilenposition
colour - das Farbattribut
------------------------------------------------------
setpage
BESCHREIBUNG - Macht eine bestimmte Seite zur aktuellen aktiven Seite
VGA und EGA Karten unterstützen 8 Seiten, d.h. 0-7 und
MONOCHROME Karten unterstützen nur eine Seite
SCHREIBWEISE - procedure setpage(pagenumber : integer);
PARAMETER - pagenumber - die Seitenzahl
------------------------------------------------------
swappage
BESCHREIBUNG - Tauscht den gesamten Speicherbereich einer Seite mit
einem Puffer. Sehen Sie unter getpage für weitere
Informationen nach.
SCHREIBWEISE - procedure swappage(box :pointer; pagenumber :byte);
PARAMETER - box - array um die Seite zu speichern
pagenumber - die Seitenzahl
4.5 Text-Graphik Modus
--------------------------
------------------------------------------------------
copyclear
BESCHREIBUNG - Kopiert einen Bildschirminhalt in einen array und
löscht den Bildschirm. Das Ergebnis ist das gleiche
wie das Aufrufen von savescreen und clrscr, aber
läuft erheblich schneller ab.
SCHREIBWEISE - procedure copyclear( box : pointer; x,y,xx,yy,
colour : byte);
PARAMETER - box - byte array pointer der den Bildschirm-
inhalt enthält.
x - obere linke Spaltenposition
y - obere linke Zeilenposition
xx - Anzahl der Spalten
yy - Anzahl der Zeilen
colour - das Farbattribut
------------------------------------------------------
drawbox
BESCHREIBUNG - Zeichnet ein einfaches Rechteck auf den Bildschirm, mit
einfachen, doppelten, oder einer Kombination aus
einfachen und doppelten Linien als Rand. Wenn eine
Kombination aus einfachen und doppelten Linien gewählt
wird, werden die Eckstücke automatisch angepasst.
SCHREIBWEISE - procedure drawbox(chx,chy : char x,y,xx,yy,
colour : byte);
PARAMETER - chx - das Zeichen daß für die horizontalen Linien
verwendet werden soll:
'd','D' - doppelte Linien
's','S' - einfache Linien
chy - das Zeichen daß für die vertikalen Linien
verwendet werden soll
'd','D' - doppelte Linien
's','S' - einfache Linien
x - obere linke Spaltenposition
y - obere linke Zeilenposition
xx - Anzahl der Spalten
yy - Anzahl der Zeilen
colour - das Farbattribut
------------------------------------------------------
fillscreen
BESCHREIBUNG - Füllt einen Bildschirmausschnitt mit einem bestimmten
Zeichen mit einem bestimmten Farbattribut
SCHREIBWEISE - procedure fillscreen(ch : char; x,y,xx,yy,
colour : byte);
PARAMETER - ch - das zu verwendende Zeichen
x - obere linke Spaltenposition
y - obere linke Zeilenposition
xx - Anzahl der Spalten
yy - Anzahl der Zeilen
colour - das Farbattribut
------------------------------------------------------
restorescreen
BESCHREIBUNG - Stellt einen vorher gespeicherten Bildschirm wieder her
Bitte lesen Sie die Information zur savescreen Prozedur
bevor Sie dies benutzen.
SCHREIBWEISE - procedure restorescreen(box : pointer; x,y,xx,
yy : byte);
PARAMETER - box - der byte array pointer in dem der Bildschirm-
inhalt gespeichert wird
x - obere linke Spaltenposition
y - obere linke Zeilenposition
xx - Anzahl der Spalten
yy - Anzahl der Zeilen
------------------------------------------------------
savescreen
BESCHREIBUNG - Kopiert den Bildschirminhalt (oder Ausschnitt) inklusive
der Farbattribute in einen byte array pointer. Der
'Ausschnitt' pointer sollte ein array of bytes in der
Größe des zu speichernden Bildschirms sein. Dabei ist
zu bedenken, daß ein byte für das Zeichen und eins für
das Farbattribut gebraucht wird.
D.h. um den gesamten Bildschirm zu speichern wird ein
array[1..4000] of byte benötigt. Vergessen Sie nicht die
Adresse des pointers anzugeben.
Beispiel: savescreen(@boxptr,1,1,80,25);
SCHREIBWEISE - procedure savescreen(box : pointer; x,y,xx,yy : byte);
PARAMETER - box - byte array pointer der den Bildschirminhalt
aufnimmt
x - obere linke Spaltenposition
y - obere linke Zeilenposition
xx - Anzahl der Spalten
yy - Anzahl der Zeilen
------------------------------------------------------
screendown
BESCHREIBUNG - Bewegt einen Teil des Bildschirms eine Zeile nach unten
Der Bildschirmausschnitt sollte vorher mit savescreen
gespeichert worden sein, damit der 'Rechteck'-pointer
richtig initialisiert wird. Die Variablen x und y
werden automatisch auf die neue Bildschirmposition ge-
setzt.
SCHREIBWEISE - procedure screendown(box : pointer; var x,y : byte;
xx,yy : byte);
PARAMETER - box - der byte array pointer, der den Bildschirminhalt
speichert.
x - obere linke Spaltenposition
y - obere linke Zeilenposition
xx - Anzahl der Spalten
yy - Anzahl der Zeilen
------------------------------------------------------
screenleft
BESCHREIBUNG - Bewegt einen Bildschirmausschnitt 2 Spalten nach links.
Der Bildschirmausschnitt sollte vorher mit savescreen
gespeichert worden sein, damit der 'Rechteck'-pointer
richtig initialisiert wird. Die Variablen x und y
werden automatisch auf die neue Bildschirmposition ge-
setzt.
SCHREIBWEISE - procedure screenleft(box : pointer; var x,y : byte;
xx,yy : byte);
PARAMETER - box - der byte array pointer, der den Bildschirminhalt
speichert.
x - obere linke Spaltenposition
y - obere linke Zeilenposition
xx - Anzahl der Spalten
yy - Anzahl der Zeilen
------------------------------------------------------
screenright
BESCHREIBUNG - Bewegt einen Bildschirmnausschnitt zwei Spalten nach
rechts.Der Bildschirmausschnitt sollte vorher mit
savescreen gespeichert worden sein, damit der
'Rechteck'-pointer richtig initialisiert wird. Die
Variablen x und y werden automatisch auf die neue
Bildschirmposition gesetzt.
SCHREIBWEISE - procedure screenright(box : pointer; var x,y : byte;
xx,yy : byte);
PARAMETER - box - der byte array pointer, der den Bildschirminhalt
speichert.
x - obere linke Spaltenposition
y - obere linke Zeilenposition
xx - Anzahl der Spalten
yy - Anzahl der Zeilen
------------------------------------------------------
screenup
BESCHREIBUNG - Bewegt einen Bildschirmausschnitt eine Zeile nach oben.
Der Bildschirmausschnitt sollte vorher mit savescreen
gespeichert worden sein, damit der 'Rechteck'-pointer
richtig initialisiert wird. Die Variablen x und y
werden automatisch auf die neue Bildschirmposition ge-
setzt.
SCHREIBWEISE - procedure screenup(box : pointer; var x,y : byte;
xx,yy : byte);
PARAMETER - box - der byte array pointer, der den Bildschirminhalt
speichert.
x - obere linke Spaltenposition
y - obere linke Zeilenposition
xx - Anzahl der Spalten
yy - Anzahl der Zeilen
------------------------------------------------------
scrollx
BESCHREIBUNG - Rollt einen bestimmten Bildschirmausschnitt nach rechts
oder links und löscht die überzähligen Spalten mit
einem bestimmte Farbattribut.
SCHREIBWEISE - procedure scrollx( where : char; x,y,xx,yy,cols,
colour : byte);
PARAMETER - where - die Richtung, d.h.
'l','L' - nach links rollen
'r','R' - nach rechts rollen
x - obere linke Spaltenposition
y - obere linke Zeilenposition
xx - Anzahl der Spalten
yy - Anzahl der Zeilen
cols - Anzahl der Spalten um die versetzt werden soll
colour - das Farbattribut mit dem leere Spalten gefüllt
werden
------------------------------------------------------
scrolly
BESCHREIBUNG - Rollt einen bestimmten Bildschirmausschnitt nach oben
oder unten und löscht die überzähligen Zeilen mit einem
bestimmten Farbattribut.
SCHREIBWEISE - procedure scrolly(where : char; x,y,xx,yy,lines,
colour : byte);
PARAMETER - where - die Richtung, d.h.
'u','U' - nach oben rollen
'd','D' - nach unten rollen
x - obere linke Spaltenposition
y - obere linke Zeilenposition
xx - Anzahl der Spalten
yy - Anzahl der Zeilen
lines - Anzahl der Zeilen um die versetzt werden soll.
colour - das Farbattribut mit dem leere Zeilen gefüllt
werden sollen.
4.6 Strings
---------------------
------------------------------------------------------
changechar
BESCHREIBUNG - Ändert jeds Vorkommnis eines bestimmten Zeichens in
einem String
SCHREIBWEISE - procedure changechar(var s : stype; search,
replace : char);
PARAMETER - s - der zu verändernde String
search - Das Zeichen das gesucht wird
replace - Das Zeichen daß 'search' ersetzt
FEHLERCODE - 0 - Fehlerfrei
1 - Zeichen nicht gefunden
------------------------------------------------------
compare
BESCHREIBUNG - Vergleicht zwei Strings. Groß / Kleinschreibung wird
ignoriert.
SCHREIBWEISE - function compare(s1, s2 : stype): boolean;
PARAMETER - s1 - erster zu vergleichender String
s2 - zweiter zu vergleichender String
ERGEBNIS - true - Strings sind identisch
false - Strings sind nicht identisch
------------------------------------------------------
deletechar
BESCHREIBUNG - Löscht alle Vorkommnisse eines bestimmten Zeichens
SCHREIBWEISE - procedure deletechar(var s : stype; ch : char);
PARAMETER - s - der zu verändernde String
ch - das zu löschende Zeichen
Fehlecode - 0 - Fehlerfrei
1 - Zeichen nicht gefunden
------------------------------------------------------
deleteleft
BESCHREIBUNG - Löscht alle Zeichen vom Anfang eines Strings bis
ein bestimmtes Zeichen erreicht wird.
SCHREIBWEISE - procedure deleteleft(var s: stype; border : char);
PARAMETER - s - der zu verändernde String
border - das Zeichen bei dem das Löschen aufhört
Fehlecode - 0 - Fehlerfrei
1 - Zeichen nicht gefunden
------------------------------------------------------
deleteright
BESCHREIBUNG - Löscht alle Zeichen vom Ende eines Strings bis ein
bestimmtes Zeichen erreicht wird.
SCHREIBWEISE - procedure deleteright(var s : stype; border : char);
PARAMETER - s - der zu verändernde String
border - das Zeichen bei dem das Löschen aufhört
FEHLERCODE - 0 - Fehlerfrei
1 - Zeichen nicht gefunden
------------------------------------------------------
leftend
BESCHREIBUNG - Gibt das linke Ende eines Strings bis zu einem
bestimmten Zeichen aus.
SCHREIBWEISE - function leftend(var s: stype; border: char): stype;
PARAMETER - s - der zu verändernde String
border - das Zeichen bei dem das Suchen aufhört
ERGEBNIS - der neue String
FEHLERCODE - 0 - Fehlerfrei
1 - Zeichen nicht gefunden
------------------------------------------------------
lowercase
BESCHREIBUNG - Ändert einen String in Kleinbuchstaben
SCHREIBWEISE - procedure lowercase(var s: stype);
PARAMETER - s - der zu verändernde String
------------------------------------------------------
overwrite
BESCHREIBUNG - Überschreibt einen Teil eines Strings mit einem
anderen String
SCHREIBWEISE - procedure overwrite(var s: stype; subs: stype;
position: integer;
PARAMETER - s - der zu verändernde String
subs - der String der 's' ersetzt
position - die Stelle an dem das Überschreiben
anfängt
FEHLERCODE - 0 - Fehlerfrei
1 - Fehler
------------------------------------------------------
padcentre
BESCHREIBUNG - Verlängert einen String durch einfügen von
Zeichen an einer beliebigen Stelle, bis eine
bestimmte Länge erreicht ist.
SCHREIBWEISE - procedure padcentre(var s: stype; ch: char;
position_length: integer);
PARAMETER - s - der zu verändernde String
ch - das Füllzeichen
position - die Stelle an der das Einfügen statt-
findet
length - die neue Länge von s
FEHLERCODE - 0 - Fehlerfrei
1 - Fehler
------------------------------------------------------
padends
BESCHREIBUNG - Verlängert einen String an beiden Enden auf eine
bestimmte Länge
SCHREIBWEISE - procedure padends(var s: stype; ch: char;
length: integer);
PARAMETER - s - der zu verändernde String
ch - das Füllzeichen
length - die neue Länge von s
FEHLERCODE - 0 - Fehlerfrei
1 - Fehler
------------------------------------------------------
padleft
BESCHREIBUNG - Verlängert einen String vom Anfang an auf eine
bestimmte Länge
SCHREIBWEISE - procedure padleft(var s: stype; ch: char;
length: integer);
PARAMETER - s - der zu verändernde String
ch - das Füllzeichen
length - die neue Länge von s
FEHLERCODE - 0 - Fehlerfrei
1 - Fehler
------------------------------------------------------
padright
BESCHREIBUNG - Verlängert einen String vom Ende an auf eine
bestimmte Länge
SCHREIBWEISE - procedure padright(var s: stype; ch: char;
length: integer);
PARAMETER - s - der zu verändernde String
ch - das Füllzeichen
length - die neue Länge von s
FEHLERCODE - 0 - Fehlerfrei
1 - Fehler
------------------------------------------------------
replace
BESCHREIBUNG - Löscht eine bestimmte Anzahl Zeichen und fügt
einen neuen String ein
SCHREIBWEISE - procedure replace(var s:stype; subs: stype;
position,chars: integer);
PARAMETER - s - der zu verändernde String
subs - der einzufügende String
position - Die Stelle ab der das Ersetzen beginnt
chars - die Anzahl Buchstaben die vor dem
einfügen gelöscht werden sollen
FEHLERCODE - 0 - Fehlerfrei
1 - Fehler
------------------------------------------------------
rightend
BESCHREIBUNG - Gibt das rechte Ende eines Strings bis zu einem
bestimmten Zeichen aus.
SCHREIBWEISE - function rightend(var s: stype; border: char):stype;
PARAMETER - s - der zu verändernde String
border - das Zeichen bei dem die Suche abgebrochen
wird
ERGEBNIS - der neue String
FEHLERCODE - 0 - Fehlerfrei
1 - Zeichen nicht gefunden
------------------------------------------------------
seekstring
BESCHREIBUNG - Sucht nach einer Zeichenfolge in einem String
SCHREIBWEISE - function seekstring(s, subs: stype;
startpt: integer): integer;
PARAMETER - s - der zu verändernde String
subs - die zu suchende Zeichenfolge
startpt - die Anfangsposition für die Suche
ERGEBNIS - die Position der Zeichenfolge
FEHLERCODE - 0 - Fehlerfrei
1 - Fehler
------------------------------------------------------
stringend
BESCHREIBUNG - Gibt eine bestimmte Anzahl vom Ende eines Strings
an aus.
SCHREIBWEISE - function stringend(s: stype; numberchars: integer)
: stype;
PARAMETER - s - der zu verändernde String
numberchars - die Zahl der auszugebenden Zeichen
ERGEBNIS - den neuen String
FEHLERCODE - 0 - Fehlerfrei
1 - s ist Null
2 - ein anderer Fehler
------------------------------------------------------
stringof
BESCHREIBUNG - Erzeugt einen neuen String aus Wiederholungen eines
Teilstrings
SCHREIBWEISE - function stringof(s: stype; length: integer):stype;
PARAMETER - s - der zu verändernde String
length - Länge des zurückzugebenden Strings
FEHLERCODE - 0 - Fehlerfrei
1 - Fehler
------------------------------------------------------
uppercase
BESCHREIBUNG - Wandelt einen String in Großbuchstaben um
SCHREIBWEISE - procedure uppercase(var s: stype);
PARAMETER - s - der zu verändernde String
------------------------------------------------------
wordcount
BESCHREIBUNG - Zäht die Anzahl von Wörtern in einem String. Ein
Wort ist definiert als eine Anzahl von Zeichen
außer dem Leerzeichen (#32)
SCHREIBWEISE - function wordcount(s: stype): integer;
PARAMETER - s - der zu verändernde String